[LINUX] Don't pin the initial page tables on x86_64 when XENFEAT_writable_page_tables.
authorIan Campbell <ian.campbell@xensource.com>
Fri, 16 Mar 2007 10:24:56 +0000 (10:24 +0000)
committerIan Campbell <ian.campbell@xensource.com>
Fri, 16 Mar 2007 10:24:56 +0000 (10:24 +0000)
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
linux-2.6-xen-sparse/arch/x86_64/mm/init-xen.c

index de7c80dfb843e6120cb0c95b94c87ab2701e6ea9..40bd5d235e6ed5c39c5110c40f252d5c1c748b81 100644 (file)
@@ -597,8 +597,10 @@ void __init xen_init_pt(void)
        early_make_page_readonly(level2_kernel_pgt,
                                 XENFEAT_writable_page_tables);
 
-       xen_pgd_pin(__pa_symbol(init_level4_pgt));
-       xen_pgd_pin(__pa_symbol(init_level4_user_pgt));
+       if (!xen_feature(XENFEAT_writable_page_tables)) {
+               xen_pgd_pin(__pa_symbol(init_level4_pgt));
+               xen_pgd_pin(__pa_symbol(init_level4_user_pgt));
+       }
 
        set_pgd((pgd_t *)(init_level4_user_pgt + 511), 
                mk_kernel_pgd(__pa_symbol(level3_user_pgt)));